* to use gtk_widget_get_settings().
*/
+/* --- typedefs --- */
+typedef struct _GtkSettingsValue GtkSettingsValue;
+
+/*< private >
+ * GtkSettingsValue:
+ * @origin: Origin should be something like “filename:linenumber” for
+ * rc files, or e.g. “XProperty” for other sources.
+ * @value: Valid types are LONG, DOUBLE and STRING corresponding to
+ * the token parsed, or a GSTRING holding an unparsed statement
+ */
+struct _GtkSettingsValue
+{
+ /* origin should be something like "filename:linenumber" for rc files,
+ * or e.g. "XProperty" for other sources
+ */
+ char *origin;
+
+ /* valid types are LONG, DOUBLE and STRING corresponding to the token parsed,
+ * or a GSTRING holding an unparsed statement
+ */
+ GValue value;
+
+ /* the settings source */
+ GtkSettingsSource source;
+};
+
typedef struct _GtkSettingsClass GtkSettingsClass;
typedef struct _GtkSettingsPropertyValue GtkSettingsPropertyValue;
-typedef struct _GtkSettingsValuePrivate GtkSettingsValuePrivate;
struct _GtkSettings
{
GObjectClass parent_class;
};
-struct _GtkSettingsValuePrivate
-{
- GtkSettingsValue public;
- GtkSettingsSource source;
-};
-
struct _GtkSettingsPropertyValue
{
GValue value;
}
static void
-apply_queued_setting (GtkSettings *settings,
- GParamSpec *pspec,
- GtkSettingsValuePrivate *qvalue)
+apply_queued_setting (GtkSettings *settings,
+ GParamSpec *pspec,
+ GtkSettingsValue *qvalue)
{
GValue tmp_value = G_VALUE_INIT;
g_value_init (&tmp_value, G_PARAM_SPEC_VALUE_TYPE (pspec));
- if (_gtk_settings_parse_convert (&qvalue->public.value,
+ if (_gtk_settings_parse_convert (&qvalue->value,
pspec, &tmp_value))
{
if (settings->property_values[pspec->param_id - 1].source <= qvalue->source)
}
else
{
- char *debug = g_strdup_value_contents (&qvalue->public.value);
+ char *debug = g_strdup_value_contents (&qvalue->value);
g_message ("%s: failed to retrieve property '%s' of type '%s' from rc file value \"%s\" of type '%s'",
- qvalue->public.origin ? qvalue->public.origin : "(for origin information, set GTK_DEBUG)",
+ qvalue->origin ? qvalue->origin : "(for origin information, set GTK_DEBUG)",
pspec->name,
g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)),
debug,
for (node = object_list; node; node = node->next)
{
GtkSettings *settings = node->data;
- GtkSettingsValuePrivate *qvalue;
+ GtkSettingsValue *qvalue;
settings->property_values = g_renew (GtkSettingsPropertyValue, settings->property_values, class_n_properties);
settings->property_values[class_n_properties - 1].value.g_type = 0;
static void
free_value (gpointer data)
{
- GtkSettingsValuePrivate *qvalue = data;
+ GtkSettingsValue *qvalue = data;
- g_value_unset (&qvalue->public.value);
- g_free (qvalue->public.origin);
- g_slice_free (GtkSettingsValuePrivate, qvalue);
+ g_value_unset (&qvalue->value);
+ g_free (qvalue->origin);
+ g_slice_free (GtkSettingsValue, qvalue);
}
static void
const GtkSettingsValue *new_value,
GtkSettingsSource source)
{
- GtkSettingsValuePrivate *qvalue;
+ GtkSettingsValue *qvalue;
GParamSpec *pspec;
char *name;
GQuark name_quark;
qvalue = g_datalist_id_dup_data (&settings->queued_settings, name_quark, NULL, NULL);
if (!qvalue)
{
- qvalue = g_slice_new0 (GtkSettingsValuePrivate);
+ qvalue = g_slice_new0 (GtkSettingsValue);
g_datalist_id_set_data_full (&settings->queued_settings, name_quark, qvalue, free_value);
}
else
{
- g_free (qvalue->public.origin);
- g_value_unset (&qvalue->public.value);
+ g_free (qvalue->origin);
+ g_value_unset (&qvalue->value);
}
- qvalue->public.origin = g_strdup (new_value->origin);
- g_value_init (&qvalue->public.value, G_VALUE_TYPE (&new_value->value));
- g_value_copy (&new_value->value, &qvalue->public.value);
+ qvalue->origin = g_strdup (new_value->origin);
+ g_value_init (&qvalue->value, G_VALUE_TYPE (&new_value->value));
+ g_value_copy (&new_value->value, &qvalue->value);
qvalue->source = source;
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (settings), g_quark_to_string (name_quark));
if (pspec)
char *key;
GParamSpec *pspec;
GType value_type;
- GtkSettingsValue svalue = { NULL, { 0, }, };
+ GtkSettingsValue svalue = { NULL, G_VALUE_INIT, GTK_SETTINGS_SOURCE_DEFAULT };
key = keys[i];
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (settings), key);
#define GTK_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SETTINGS, GtkSettings))
#define GTK_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SETTINGS))
-
-/* --- typedefs --- */
-typedef struct _GtkSettingsValue GtkSettingsValue;
-
-
-/* --- structures --- */
-
-/**
- * GtkSettingsValue:
- * @origin: Origin should be something like “filename:linenumber” for
- * rc files, or e.g. “XProperty” for other sources.
- * @value: Valid types are LONG, DOUBLE and STRING corresponding to
- * the token parsed, or a GSTRING holding an unparsed statement
- */
-struct _GtkSettingsValue
-{
- /* origin should be something like "filename:linenumber" for rc files,
- * or e.g. "XProperty" for other sources
- */
- char *origin;
-
- /* valid types are LONG, DOUBLE and STRING corresponding to the token parsed,
- * or a GSTRING holding an unparsed statement
- */
- GValue value;
-};
-
-
/* --- functions --- */
GDK_AVAILABLE_IN_ALL
GType gtk_settings_get_type (void) G_GNUC_CONST;